<!DOCTYPE html>
<!-- This document is intended to be both HTML5 and XML ("polyglot") -->
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8" />
    <title>WebGL Extension Registry</title>
    <link rel="alternate" type="text/xml" href="registry.xml" />
    <link rel="alternate" type="application/atom+xml" href="index.atom" />
    <link rel="stylesheet" type="text/css" href="../resources/default.css" />
    <style type="text/css">
/* Override some styles in the default style sheet */
tr.list {
  border: 0px;
}
td.list {
  border: 0px;
}
ul li+li {
  margin-top: 0px;
}
    </style>

    <script src="../resources/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="../resources/generateTOC.js" type="text/javascript"></script>
</head>
<body>
    <!--begin-logo-->
    <div class="head">
        <div class="left">
            <p>
                <a href="http://webgl.org/">
                    <img alt=WebGL width=240 height=100 src="../resources/WebGL-Logo.png"/>
                </a>
            </p>
        </div>
        <div class="right">
            <p>
                <a href="http://khronos.org/">
                    <img alt=Khronos width=336 height=80 src="../resources/Khronos_100px_June18.png"/>
                </a>
            </p>
        </div>
    </div>
    <div style="clear: both;"></div>
    <!--end-logo-->

    <h1>WebGL Extension Registry</h1>

    <h2 class="no-toc">Overview</h2>
    <p>
        The WebGL extension registry contains specifications for extensions to the
        core <a href="../specs/latest/">WebGL API</a>. Most of these extensions are incorporated
        directly from the <a href="http://www.khronos.org/registry/gles/">OpenGL ES</a>
        or <a href="http://www.opengl.org/registry/">OpenGL</a> extension registries, and refer to
        those extensions for their behavioral definition. Because WebGL extensions are specified as
        Web IDL interfaces, each specification also includes the IDL to which each implementation
        will comply.
    </p>
    <p>
        An <a href="template/">extension template</a> is available for the submission of
        new proposed extensions. New extension proposals should be emailed to the
        <a href="https://www.khronos.org/webgl/public-mailing-list/">public WebGL mailing list</a>.
        When writing a new extension specification, it is recommended to check out
        the <a href="http://github.com/KhronosGroup/WebGL">public WebGL repository</a>. See the
        WebGL wiki page <a href="http://www.khronos.org/webgl/wiki/Using_Github_To_Contribute">Using
        Github to contribute</a>. The extension registry files are located
        under <code>extensions/</code>.
    </p>
    <p>
        Each extension object is fetched from
        the <a href="../specs/latest/1.0/#WEBGLRENDERINGCONTEXT">WebGLRenderingContextBase</a> by passing
        the name of the extension to the <code>getExtension</code> method,
        i.e.: <code>context.getExtension("OES_texture_float")</code>.
    </p>

    <p>
        Extensions which are marked as promoted to core or removed in a certain version of the WebGL
        API must not be supported in an implementation of that or newer version of the WebGL API.
    </p>

    <h2 class="no-toc">Naming conventions</h2>

    <p>
        WebGL API extensions may derive from many sources, and the naming of each extension reflects
        its origin and intent.
    </p>
      <ul>

        <li><code>ARB</code>, <code>OES</code> and <code>KHR</code> tags should be used for
        mirroring functionality from OpenGL ES or OpenGL API extensions approved by the respective
        architecture review boards. <code>EXT_</code> and GPU vendor tags should be used for
        mirroring other OpenGL ES or OpenGL API extensions. If only small differences in behavior
        compared to OpenGL ES or OpenGL are specified for a given extension, the original tag should
        be maintained.

        <li>The <code>WEBGL</code> tag should be used for WebGL-specific extensions which are
        intended to be compatible with multiple web browsers. It should also be used for extensions
        which originated with the OpenGL ES or OpenGL APIs, but whose behavior has been
        significantly altered.

        <li>Browser vendor specific tags should be used for WebGL-specific extensions that are
        intended to run only on a particular browser. It is recommended to avoid such extensions,
        and instead specify them with the <code>WEBGL</code> tag.

      </ul>

    <h2 class="no-toc">Extension Development Process</h2>

    <p>
        Extensions move through four states during their
        development: <em>proposed</em>, <em>draft</em>, <em>community approved</em>, and <em>Khronos
        ratified</em>. Every extension should advance to <em>Khronos ratified</em>.
        If an extension cannot advance through the extension process it can be <em>rejected</em>.
    </p>
    <ul>
        <li> <em>Proposed</em> extensions are intended for discussion on the public WebGL mailing
        list, in order to move to <em>draft</em> status; they should not be implemented, even under
        a vendor prefix. If consensus is reached in the community, the extension can be moved
        to <em>draft</em> status.

        <li> <em>Draft</em> extensions may be implemented under a vendor prefix or behind a run-time
        option for experimentation purposes, in order to gain experience with the extension before
        finalizing it. Draft extensions should not be exposed by default by WebGL implementations.
        Once consensus is reached in the community, the extension can be moved to <em>community
        approved</em> status.

        <li> <em>Community approved</em> extensions should be implemented without a vendor
        prefix. When a draft extension moves to community approved status, any existing
        implementation should immediately remove support for any vendor-prefixed extension
        name. Once implemented by a vendor, support should not be removed unless there is a serious
        issue with the extension, such as a security flaw.

        <li> <em>Khronos ratified</em> extensions are those community approved extensions which have
        been voted upon by the Khronos Board of Promoters.

        <li> <em>Rejected</em> extensions should never be implemented.  An extension
        enters <em>rejected</em> status because consensus on it could not be reached at
        the <em>proposal</em> stage or technical difficulties arise during implementation at
        the <em>draft</em> stage.
        A <em>community approved</em> extension can only be rejected in extraordinary circumstances.
        A <em>Khronos ratified</em> extension cannot be rejected.
    </ul>

    <h2 class="no-toc">Khronos ratified WebGL Extensions</h2>

    <table style="border: 2px; width: 100%;">
    <tr>
    <td class="list"><h3>By Number</h3>
    <td class="list"><h3>By Name</h3>
    </tr>
    <tr>
    <td class="list"><ol id="ratified-by-number"></ol>
    <td class="list"><ol id="ratified-by-name"></ol>
    </tr>
    </table>

    <h2 class="no-toc">Community approved WebGL Extensions</h2>

    <table style="border: 2px; width: 100%;">
    <tr>
    <td class="list"><h3>By Number</h3>
    <td class="list"><h3>By Name</h3>
    </tr>
    <tr>
    <td class="list"><ol id="community-approved-by-number"></ol>
    <td class="list"><ol id="community-approved-by-name"></ol>
    </tr>
    </table>

    <h2 class="no-toc">Draft WebGL Extensions</h2>

    <table style="border: 2px; width: 100%;">
    <tr>
    <td class="list"><h3>By Number</h3>
    <td class="list"><h3>By Name</h3>
    </tr>
    <tr>
    <td class="list"><ol id="draft-by-number"></ol>
    <td class="list"><ol id="draft-by-name"></ol>
    </tr>
    </table>

    <h2 class="no-toc">Proposed WebGL Extensions (do not implement!)</h2>

    <table style="border: 2px; width: 100%;">
    <tr>
    <td class="list"><h3>By Name</h3>
    </tr>
    <tr>
    <td class="list"><ul class="indexlist" id="proposed-by-name"></ul>
    </tr>
    </table>

    <h2 class="no-toc">Rejected WebGL Extensions</h2>

    <table style="border: 2px; width: 100%;">
    <tr>
    <td class="list"><h3>By Name</h3>
    </tr>
    <tr>
    <td class="list"><ul class="indexlist" id="rejected-by-name"></ul>
    </tr>
    </table>

    <h2 class="no-toc">Recent WebGL Extension Revisions</h2>
    <ol id="recent-revisions"></ol>
    <a href="index.atom"><img src="../resources/feed-icon-14x14.png"
                              width="14" height="14" alt="Atom feed">&nbsp;Recent Revisions</a>
</body>
</html>
